\hypertarget{classreader}{
\section{Dokumentace třídy reader}
\label{classreader}\index{reader@{reader}}
}
Rozhraní před lexikální analýzou.  


{\tt \#include $<$reader.h$>$}

\subsection*{Třídy}
\begin{CompactItemize}
\item 
class \hyperlink{classreader_1_1bufferOverflow}{bufferOverflow}
\begin{CompactList}\small\item\em Vyjímka při přeteční bufferu. \item\end{CompactList}\end{CompactItemize}
\subsection*{Veřejné metody}
\begin{CompactItemize}
\item 
\hyperlink{classreader_ac7c6872a2397e85c386e0aa8fd3830d}{reader} (std::istream $\ast$)
\begin{CompactList}\small\item\em Konstruktor readeru. \item\end{CompactList}\item 
void \hyperlink{classreader_b7db2f36162833d7ed4868735dc37a20}{initialize} ()  throw (std::ifstream::failure)
\begin{CompactList}\small\item\em Inicializace readeru. \item\end{CompactList}\item 
int \hyperlink{classreader_b94022e58acaf26576e4f3bc6eabf676}{getCurrentChar} () const 
\begin{CompactList}\small\item\em Aktualní znak. \item\end{CompactList}\item 
int \hyperlink{classreader_5335fe3b977c254eaeaf5411559af797}{getChar} ()  throw (std::ifstream::failure)
\begin{CompactList}\small\item\em Vrací následující znak. \item\end{CompactList}\item 
void \hyperlink{classreader_2218d2db9fff10fc9ab022c342864090}{getBack} ()  throw (bufferOverflow)
\begin{CompactList}\small\item\em Posouvá ukazatel. \item\end{CompactList}\item 
unsigned long \hyperlink{classreader_5d8fea8c1354fa9ebd3450fd44e8ace1}{getLength} () const 
\begin{CompactList}\small\item\em Délka aktualně přečtených dat. \item\end{CompactList}\item 
std::string \& \hyperlink{classreader_d1ad67ee5bc2f72306e182a6eee2bdfa}{getString} (std::string \&, int) const   throw (bufferOverflow)
\begin{CompactList}\small\item\em Přečte řetězec. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailní popis}
Rozhraní před lexikální analýzou. 

Připravuje vstupní soubor k lexikální analýze. Jejím cílem je, zprostředkovat rozhraní, které pomocí vestavěných bufferů bude vracet vždy jeden znak z vstupního souboru , vracet se zpět minimálně jeden znak zpět, a vracet řetězec z bufferu. 

\subsection{Dokumentace konstruktoru a destruktoru}
\hypertarget{classreader_ac7c6872a2397e85c386e0aa8fd3830d}{
\index{reader@{reader}!reader@{reader}}
\index{reader@{reader}!reader@{reader}}
\subsubsection[{reader}]{\setlength{\rightskip}{0pt plus 5cm}reader::reader (std::istream $\ast$ {\em file})}}
\label{classreader_ac7c6872a2397e85c386e0aa8fd3830d}


Konstruktor readeru. 

\begin{Desc}
\item[Parametry:]
\begin{description}
\item[{\em file}]Vstupní stream. \end{description}
\end{Desc}


\subsection{Dokumentace k metodám}
\hypertarget{classreader_2218d2db9fff10fc9ab022c342864090}{
\index{reader@{reader}!getBack@{getBack}}
\index{getBack@{getBack}!reader@{reader}}
\subsubsection[{getBack}]{\setlength{\rightskip}{0pt plus 5cm}void reader::getBack ()  throw ({\bf bufferOverflow})}}
\label{classreader_2218d2db9fff10fc9ab022c342864090}


Posouvá ukazatel. 

Posune ukazatel o jeden znak zpět. Může nastat vyjímka spojená s přetečením bufferu. \hypertarget{classreader_5335fe3b977c254eaeaf5411559af797}{
\index{reader@{reader}!getChar@{getChar}}
\index{getChar@{getChar}!reader@{reader}}
\subsubsection[{getChar}]{\setlength{\rightskip}{0pt plus 5cm}int reader::getChar ()  throw (std::ifstream::failure)}}
\label{classreader_5335fe3b977c254eaeaf5411559af797}


Vrací následující znak. 

Posouvá ukazatel o jeden znak vpřed, a vrací nový znak. Může nastat vyjímka spojená s chybou čtení souboru. \hypertarget{classreader_b94022e58acaf26576e4f3bc6eabf676}{
\index{reader@{reader}!getCurrentChar@{getCurrentChar}}
\index{getCurrentChar@{getCurrentChar}!reader@{reader}}
\subsubsection[{getCurrentChar}]{\setlength{\rightskip}{0pt plus 5cm}int reader::getCurrentChar () const}}
\label{classreader_b94022e58acaf26576e4f3bc6eabf676}


Aktualní znak. 

Vrací znak, na který se právě ukazuje. Neposouvá ukazatel a nemění stav objektu. \hypertarget{classreader_5d8fea8c1354fa9ebd3450fd44e8ace1}{
\index{reader@{reader}!getLength@{getLength}}
\index{getLength@{getLength}!reader@{reader}}
\subsubsection[{getLength}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long reader::getLength () const}}
\label{classreader_5d8fea8c1354fa9ebd3450fd44e8ace1}


Délka aktualně přečtených dat. 

Vrací délku dat, která byl již přečtena. Nepočítají se skoky zpět atd.. Délka dat reprezentuje aktuaní pozici. \hypertarget{classreader_d1ad67ee5bc2f72306e182a6eee2bdfa}{
\index{reader@{reader}!getString@{getString}}
\index{getString@{getString}!reader@{reader}}
\subsubsection[{getString}]{\setlength{\rightskip}{0pt plus 5cm}std::string \& reader::getString (std::string \& {\em lexem}, \/  int {\em len}) const  throw ({\bf bufferOverflow})}}
\label{classreader_d1ad67ee5bc2f72306e182a6eee2bdfa}


Přečte řetězec. 

Přečte řetězec z bufferu z aktualní pozice - délka řetězce. \begin{Desc}
\item[Parametry:]
\begin{description}
\item[{\em lexem}]String do kterého se řetězec uloží. \item[{\em len}]Délka řetězce, který se má zapsat. Zapíše se řetězec , který se nachazí o len nalevo od aktualní pozice a končí aktualní pozicí. \end{description}
\end{Desc}
\hypertarget{classreader_b7db2f36162833d7ed4868735dc37a20}{
\index{reader@{reader}!initialize@{initialize}}
\index{initialize@{initialize}!reader@{reader}}
\subsubsection[{initialize}]{\setlength{\rightskip}{0pt plus 5cm}void reader::initialize ()  throw (std::ifstream::failure)}}
\label{classreader_b7db2f36162833d7ed4868735dc37a20}


Inicializace readeru. 

Musí být vždy provedena před voláním, funkcí které vracejí jakákoli data z bufferu. Jako např. \hyperlink{classreader_5335fe3b977c254eaeaf5411559af797}{getChar()} ... Při inicializaci může nastat vyjímka spojená s chybou čtení souboru. 

Dokumentace pro tuto třídu byla generována z následujících souborů:\begin{CompactItemize}
\item 
src/reader.h\item 
src/reader.cpp\end{CompactItemize}
